package loveqq.niceexcel.converter;

import org.apache.poi.ss.usermodel.CellType;

/**
 * 单元格数据转换器
 *
 * @author zhongjh@tsintergy.com
 * @date 2022-08-18
 */
public interface Converter<T> {
    /**
     * 转换出Java类型
     *
     * @return Java类型
     */
    Class<T> supportJavaType();

    /**
     * 单元格类型
     *
     * @return 单元格类型
     */
    CellType supportExcelType();

    /**
     * 转换为Java类型数据
     *
     * @param cellData 单元格数据
     * @param context  转换上下文
     * @return Java类型数据
     */
    T convertToJavaData(CellData<?> cellData, ConvertContext context) throws Exception;

    /**
     * 转换为Excel单元格数据
     *
     * @param data    Java类型数据
     * @param context 转换上下文
     * @return Excel单元格数据
     */
    CellData<?> convertToExcelData(T data, ConvertContext context) throws Exception;

}
